package 分治算法_汉诺塔;
// 将大的问题分成若干小的问题
public class hanoiTower {
    public static void main(String[] args) {
        hanoi(5,'A','B','C');
    }

    /**
     * 汉诺塔实现,使用分治算法
     * @param num 盘子的个数
     * @param a 起始柱
     * @param b 中转柱
     * @param c 末尾柱
     */
    public static void hanoi(int num,char a,char b,char c){
        if(num == 1){
            // 不用借助中转,一步到位
            System.out.println(a+" -> "+c);
            return;
        }

        hanoi(num-1,a,c,b);
        System.out.println(a+" -> "+c);
        hanoi(num-1,b,a,c);
    }
}
